home *** CD-ROM | disk | FTP | other *** search
/ Aminet 2 / Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso / Aminet / gfx / show / JPEGv42source.lha / GC / JPEG / retina.h < prev    next >
C/C++ Source or Header  |  1993-06-13  |  7KB  |  250 lines

  1. #ifndef _INLINE_RETINA_H
  2. #define _INLINE_RETINA_H
  3.  
  4. #include "retina_defs.h" 
  5.  
  6. /*
  7. __BEGIN_DECLS
  8. */
  9.  
  10. #ifndef BASE_EXT_DECL
  11. #ifndef C_ONLY
  12. #define BASE_EXT_DECL 
  13. #else
  14. #define BASE_EXT_DECL extern struct Library * RetinaBase;
  15. #endif
  16. #endif
  17. #ifndef BASE_PAR_DECL
  18. #define BASE_PAR_DECL
  19. #define BASE_PAR_DECL0 void
  20. #endif
  21. #ifndef BASE_NAME
  22. #ifndef C_ONLY
  23. #define BASE_NAME RetinaLib::RetinaBase
  24. #else
  25. #define BASE_NAME RetinaBase
  26. #endif
  27. #endif
  28.  
  29. static __inline struct RetinaScreen * 
  30. Retina_OpenScreen (BASE_PAR_DECL unsigned short int width,
  31.                    unsigned short int height,
  32.                    unsigned long int ID,
  33.                    unsigned long int Flags,
  34.                    struct TagList * Tags
  35.                   )
  36. {
  37.   BASE_EXT_DECL
  38.   register struct Library *a6 __asm("a6") = BASE_NAME;
  39.   register struct RetinaScreen * res __asm("d0");
  40.   register unsigned short int d0 __asm("d0") = width;
  41.   register unsigned short int d1 __asm("d1") = height;
  42.   register unsigned long int d2 __asm("d2") = ID;
  43.   register unsigned long int d3 __asm("d3") = Flags;
  44.   register struct TagList * a0  __asm("a0") = Tags;
  45.   __asm __volatile ("jsr a6@(-186)"
  46.   : "=r" (res)
  47.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (d3)
  48.   : "d0", "memory");
  49.   return res;
  50. }
  51.  
  52. static __inline void 
  53. Retina_WriteRect (BASE_PAR_DECL unsigned char * Mem,
  54.                    unsigned short int MemX,
  55.                    unsigned short int MemY,
  56.                    unsigned short int MemWidth,
  57.                    unsigned long int Mode,
  58.                    struct RetinaScreen * Scr,
  59.                    unsigned short int ScrX,
  60.                    unsigned short int ScrY,
  61.                    unsigned short int SizeX,
  62.                    unsigned short int SizeY
  63.                   )
  64. {
  65.   BASE_EXT_DECL
  66.   register struct Library *a6 __asm("a6") = BASE_NAME;
  67.   /* register    _res __asm("d0"); */
  68.   register unsigned short int d0 __asm("d0") = MemX;
  69.   register unsigned short int d1 __asm("d1") = MemY;
  70.   register unsigned short int d2 __asm("d2") = MemWidth;
  71.   register unsigned long int  d3 __asm("d3") = Mode;
  72.   register unsigned short int d4 __asm("d4") = ScrX;
  73.   register unsigned short int d5 __asm("d5") = ScrY;
  74.   register unsigned short int d6 __asm("d6") = SizeX;
  75.   register unsigned short int d7 __asm("d7") = SizeY;
  76.   register unsigned char *    a0 __asm("a0") = Mem;
  77.   register struct RetinaScreen * a1 __asm("a1") = Scr;
  78.   __asm __volatile ("jsr a6@(-318)"
  79.   : /* "=r" (_res) */
  80.   : "r" (d0), "r" (d1), "r" (d2), "r" (d3), "r" (d4), "r" (d5), "r" (d6), "r" (d7),
  81.     "r" (a0), "r" (a1), "r" (a6)
  82.   : "d0", "memory");
  83.   /* return res; */
  84. }
  85.  
  86. static __inline void 
  87. Retina_CloseScreen (struct RetinaScreen * Scr) {
  88.   BASE_EXT_DECL
  89.   register struct Library *a6 __asm("a6") = BASE_NAME;
  90.   /* register    _res __asm("d0"); */
  91.   register struct RetinaScreen *  a0 __asm("a0") = Scr;
  92.   __asm __volatile ("jsr a6@(-192)"
  93.   : /* "=r" (_res) */
  94.   : "r" (a0), "r" (a6)
  95.   : "d0", "memory");
  96.   /* return res; */
  97. }
  98.  
  99. static __inline void 
  100. Retina_ScreenToFront (struct RetinaScreen * Scr) {
  101.   BASE_EXT_DECL
  102.   register struct Library *a6 __asm("a6") = BASE_NAME;
  103.   /* register    _res __asm("d0"); */
  104.   register struct RetinaScreen *  a0 __asm("a0") = Scr;
  105.   __asm __volatile ("jsr a6@(-198)"
  106.   : /* "=r" (_res) */
  107.   : "r" (a0), "r" (a6)
  108.   : "d0", "memory");
  109.   /*return res; */
  110. }
  111.  
  112. static __inline void 
  113. Retina_ScreenToBack (struct RetinaScreen * Scr) {
  114.   BASE_EXT_DECL
  115.   register struct Library *a6 __asm("a6") = BASE_NAME;
  116.   /* register    _res __asm("d0"); */
  117.   register struct RetinaScreen *  a0 __asm("a0") = Scr;
  118.   __asm __volatile ("jsr a6@(-276)"
  119.   : /* "=r" (_res) */
  120.   : "r" (a0), "r" (a6)
  121.   : "d0", "memory");
  122.   /*return res; */
  123. }
  124.  
  125. static __inline void 
  126. Retina_SwapBitMap (struct RetinaScreen * Scr) {
  127.   BASE_EXT_DECL
  128.   register struct Library *a6 __asm("a6") = BASE_NAME;
  129.   /* register    _res __asm("d0"); */
  130.   register struct RetinaScreen *  a0 __asm("a0") = Scr;
  131.   __asm __volatile ("jsr a6@(-282)"
  132.   : /* "=r" (_res) */
  133.   : "r" (a0), "r" (a6)
  134.   : "d0", "memory");
  135.   /*return res; */
  136. }
  137.  
  138. static __inline void 
  139. Retina_OwnRetina (void) {
  140.   BASE_EXT_DECL
  141.   register struct Library *a6 __asm("a6") = BASE_NAME;
  142.   /* register    _res __asm("d0"); */
  143.   __asm __volatile ("jsr a6@(-354)"
  144.   : /* "=r" (_res) */
  145.   : "r" (a6)
  146.   : "memory");
  147.   /*return res; */
  148. }
  149.  
  150. static __inline void 
  151. Retina_DisownRetina (void) {
  152.   BASE_EXT_DECL
  153.   register struct Library *a6 __asm("a6") = BASE_NAME;
  154.   /* register    _res __asm("d0"); */
  155.   __asm __volatile ("jsr a6@(-360)"
  156.   : /* "=r" (_res) */
  157.   : "r" (a6)
  158.   : "memory");
  159.   /*return res; */
  160. }
  161.  
  162. static __inline void 
  163. Retina_WaitTOF (void) {
  164.   BASE_EXT_DECL
  165.   register struct Library *a6 __asm("a6") = BASE_NAME;
  166.   /* register    _res __asm("d0"); */
  167.   __asm __volatile ("jsr a6@(-204)"
  168.   : /* "=r" (_res) */
  169.   : "r" (a6)
  170.   : "memory");
  171.   /*return res; */
  172. }
  173.  
  174. static __inline unsigned char * 
  175. Retina_SetSegmentPtr ( long adr) {
  176.   BASE_EXT_DECL
  177.   register struct Library *a6 __asm("a6") = BASE_NAME;
  178.   register unsigned char *  _res __asm("d0");
  179.   register unsigned long a0 __asm("a0") = adr;
  180.   __asm __volatile ("jsr a6@(-150)"
  181.   : "=r" (_res)
  182.   : "r" (a0), "r" (a6)
  183.   : "d0", "memory");
  184.   return _res;
  185. }
  186.  
  187. static __inline struct RetinaMonitor * 
  188. Retina_FindMonitor ( unsigned long monid) {
  189.   BASE_EXT_DECL
  190.   register struct Library *a6 __asm("a6") = BASE_NAME;
  191.   register struct RetinaMonitor *  _res __asm("d0");
  192.   register unsigned long d0 __asm("d0") = monid;
  193.   __asm __volatile ("jsr a6@(-174)"
  194.   : "=r" (_res)
  195.   : "r" (d0), "r" (a6)
  196.   : "d0", "memory");
  197.   return _res;
  198. }
  199.  
  200. static __inline void 
  201. Retina_DisplayOff (void) {
  202.   BASE_EXT_DECL
  203.   register struct Library *a6 __asm("a6") = BASE_NAME;
  204.   /* register    _res __asm("d0"); */
  205.   __asm __volatile ("jsr a6@(-60)"
  206.   : /* "=r" (_res) */
  207.   : "r" (a6)
  208.   : "memory");
  209.   /*return res; */
  210. }
  211.  
  212. static __inline void 
  213. Retina_DisplayOn (void) {
  214.   BASE_EXT_DECL
  215.   register struct Library *a6 __asm("a6") = BASE_NAME;
  216.   /* register    _res __asm("d0"); */
  217.   __asm __volatile ("jsr a6@(-66)"
  218.   : /* "=r" (_res) */
  219.   : "r" (a6)
  220.   : "memory");
  221.   /*return res; */
  222. }
  223.  
  224. static __inline void 
  225. Retina_LoadPalette (struct RetinaScreen * scr, unsigned short first, unsigned short count, unsigned char * table) {
  226.   BASE_EXT_DECL
  227.   register struct Library *a6 __asm("a6") = BASE_NAME;
  228.   register struct RetinaScreen * a0 __asm("a0") = scr;
  229.   register unsigned char * a1 __asm("a1") = table;
  230.   register unsigned short d0 __asm("d0") = first;
  231.   register unsigned short d1 __asm("d1") = count;
  232.   /* register    _res __asm("d0"); */
  233.   __asm __volatile ("jsr a6@(-138)"
  234.   : /* "=r" (_res) */
  235.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (a1)
  236.   : "memory");
  237.   /*return res; */
  238. }
  239.  
  240. #undef BASE_EXT_DECL
  241. #undef BASE_PAR_DECL
  242. #undef BASE_PAR_DECL0
  243. #undef BASE_NAME
  244.  
  245. /*
  246. __END_DECLS
  247. */
  248.  
  249. #endif /* _INLINE_RETINA_H */
  250.